package src.Interface.websrc;
import src.Business.BaseDataObject.Employee;


/**
 * @author Capstone Project
 * @version 1.0
 * @category Interface
 * WebInterface Class.
 * WebInterface will be the web front end of our system. From here the web
 * administrator will be able to manage Employee's. As well as view reports and
 * transactions from the SQL Database.
 */
public interface WebInterface
{
	/**
	 * A login management method that will check inputs and compare them against
	 * values stored in the LDAP directory. If the login is successful the admin
	 * will be able to use the web interface.
	 */
	public void logIn();
	
	/**
	 * An admin will be able to update employee information in the LDAP
	 * directory by inputting details in to the web interface. If the update is
	 * successful a report will be generated and added to the SQL database 
	 * As well as the web interface will specify that the update went through.
	 */
	public void updateEmployee();
	
	/**
	 * An admin will be able to add employee's in to the LDAP directory directly
	 * from the web interface. If the addition is successful a report will be
	 * generated and logged in the SQL database and the web interface will 
	 * display that the addition transpired.
	 */
	public void addEmployee();
	
	/**
	 * An admin will be able to terminate an employee from the web interface
	 * with the click of a button and a confirmation message. If the deletion is
	 * successful then a report will be logged in the SQL database and the web
	 * interface will display that the removal was successful.  
	 */
	public void terminateEmployee();
	
	/**
	 * The admin query's the system for a report logged in the SQL database.
	 * If a valid report is found the web interface will be updated.
	 */
	public void requestUsageReport();
	
	/**
	 * The admin query's the system for a transaction logged in the SQL database.
	 * If a valid transaction is found the web interface will be updated.
	 */
	public void requestTransactionReport();
	
	/**
	 * The admin can search the LDAP directory from the web interface. If the 
	 * specified Employee is fetched it is returned and available to edit or
	 * terminate by the web admin.
	 * 
	 * @return - Employee - Returned if the specified search parameter is met.
	 */
	public Employee searchLDAP();
}
